#include "MainUI.h"

void MainUI::m_chartScreenshot()
{
    /* 固定显示的tooltip*/
    const QString toolMsg = "截图成功，PNG图片位于程序同级目录的png文件夹下";
    
    QFont font = m_globalTootipCfg(QString("新宋体") , 24);
    
    /* 获取字符串的宽度*/
    QFontMetrics fontMetrics(font);
    int toolMsgWidth = fontMetrics.width(toolMsg);
    
    /* 计算将toolMsg显示在界面正中间的坐标*/
    QPoint pt = mapToGlobal(ui->wOscilloscope->pos()
                            +QPoint(ui->wOscilloscope->width()/2, ui->wOscilloscope->height()/3)
                            -QPoint(toolMsgWidth/2,0));
    
    
    
    /* 检测文件夹是否存在*/
    QString dir_str = QCoreApplication::applicationDirPath() + QString("/png/");
    QDir dir;
    if (!dir.exists(dir_str))
    {
        bool res = dir.mkpath(dir_str);
        if(res)
        {
            QToolTip::showText(pt, 
                               dir_str + " 创建成功", 
                               this,
                               QRect(pt.x(),pt.y(),128,64),
                               1000);
        }
        else 
        {
            QToolTip::showText(pt, 
                               dir_str + " 创建失败", 
                               this,
                               QRect(pt.x(),pt.y(),128,64),
                               1000);
            
            return ; /* 如果创建失败 则不截图 直接返回*/
        }
    }
    
    /* 生成一个唯一的文件名*/
    QString m_saveFileName =  QCoreApplication::applicationDirPath()
            + QString("/png/")
            + QDateTime::currentDateTime().toString("yyyy-MM-dd hh-mm-ss")
            + QUuid::createUuid().toString()
            + QString(".png");
    
    /* 截图并保存*/
    QScreen * screen = QGuiApplication::primaryScreen();
    QPixmap p = screen->grabWindow(m_chartView->winId());
    QImage image = p.toImage();
    image.save(m_saveFileName);
    
    
    /* 显示toolMsg*/
    QToolTip::showText(pt, 
                       toolMsg, 
                       this,
                       QRect(pt.x(),pt.y(),128,64),
                       1000);
}
